ADB Prober is a little program thrown together in a few hour's time that displays all devices connected to the ADB (Apple Desktop Bus) and tries to identify them. You have buttons to re-scan the bus and to re-set it (you need the latter if you love living on the edge and connect another device while the computer is on. You do risk your ADB chip each time but 'no pain - no game' they say.).
Due to popular demand, starting with version 0.97 you also have the option of either continuously polling ('monitoring') or trigger-polling (waiting for signal) on a specific device. ADB Prober now lets you examine and analyse the data stream that comes from an ADB device. Ever wondered how to read the Thrustmaster WCS settings? Just hit Poll and watch register 3 closely...
Also, as of version 0.97, Prober supplies you with much deeper information whenever an unknown device is encountered.
Using ADB Prober:
================
There are two distinct applications for ADB Prober:
ADB Diagnostics and
ADB Polling
ADB Diagnosics is the part of the program that scans the ADB and reports the devices it finds. To make sure that a device is really connected, ADB Prober does a number of things, among them:
- Query of all the device register
- Sanity check on the original address (connect a Gravis GamePad, run the Gravis
software and see a sanity failure)
- Checks for device storage and callback procedures
After ADB Prober is sure that there is a device connected, it tries to identify it and display it. For certain devices I have been provided with in-depth information by its manufacturer and ADB Prober is able to do even more extensive tests. For example, ADB Prober is able to not only identify the MacEnjoy but also its ROM version. Other devices (e.g. Silhouette) can only be identified generally because so far I have no Idea how to tell it apart from the usual garden variety of mouses.
You would normally use ADB Prober to make sure all your devices are connected properly and that there are no problems on the bus. The ADB Diagnostics provide this functionality.
If the problems persist, you usually identify the problematic device by using the ADB Polling part. Read the 'ADB Trouble Shooting' section of this documenation on how to identify and verify a bad device.
ADB Diagnostics
---------------
This is the default ADB Prober operations mode. When you launch ADB Prober, it will show a Window, scan the ADB and identify all devices it finds on the Bus. You may Reset and Re-Scan the bus by pressing on the buttons provided for that reason.
The ADB is a bus that provides for 16 devices. Device numer Zero is always the Mac. Devices 1 to 15 are the ones you connect to your Mac.
While ADB Prober scans the bus it identifes each device and places its description in the apropriate 'slot'. For example, the device on address 3 will be placed in the third row.
A slot usually reads like this:
07 07 $5F Thrustmaster (FCS, WCS)
The first number is the devices current, the second the devices original address. The third number (in hexadecimal, indicated by a leading '$' sign) is the device type. The fourth column holds the device description as ADB Prober sees it (and yes, ADB Prober *is* able to detect if there is a WCS or RCS connected to the Thrustmaster).
If Prober encounters a device it does not recognize it will either name it '?' and supply register info e.g.
05 03 $79 ?R1= R2= R3=7C 79
or try to guess. In the latter case, the program will append a question mark '?' to the description, e.g.
02 02 $15 GamePad ?
There is one special designation: 'Phantom Device'. This is not a real device but an indication that something bad is going on on the bus. If you have a Phantom Device, be sure not to T-Poll it (see below). Phantom devices usually do not cause severe errors but are an indication that not everything is as it should.
Sometimes, a device description it flagged (appeded) with a special symbol. This is always an indication that ADB Prober is not too sure about the device it identified or found something amiss when it verified it's existance:
'•' means that the devices original address is invalid
'¥' means that the devices storage area is invalid
'Δ' means that devices callback procedure is invalid
'?' means that ADB Prober is not sure about it's identification
Whenever there is a flag appended to your device, it is only an indication that there *could* be trouble, but not neccessarily so. For example, the Gravis GamePad is routinely flagged with '•' when the Gravis software is installed.
Below the 15 diagnostics 'slots' there are four Buttons:
OK : Exits the program.
Re-Scan: Re-Scans and re-identifies all devices on the bus
Reset: Resets the ADB.
There is also a small button labelled 'Poll'. It is normally grayed out. This button provides in-depth information about a particular device. It is not intended for the timid user. You use it to enter Polling.
Polling
------
As of version 0.97, ADB Prober sports a real-time probe into the ADD data stream. Polling means that Prober continuously reads ('polls') a certain device and displays the data it finds. Note that the Poll Info is *not* for the casual user. Although it won't fry your mouse or dislocate your joystick, it's primartily designed for techies that need to diagnosy what's happening with a device. Therefore I will not tell you what ADB Registers are. If you really need to know, read Inside Mac: Devices (or Inside Mac Vol. V) and scan the ToolBox Assistant.
To poll a device, click on it's slot to select it. Note that you may also select an empty slot. This is intentional. The 'Poll' button becomes enabled. Clicking on it will drop you into the polling mode. A new window appears that continuously displays the contents of all the registers of the selected device. To exit polling, press the Mouse button.
While normal polling usually provides more information than you should ever need, there are some cases where it is not good enough. Since normal polling requires some time to redraw the screen and also yields some time for tracking the mouse and (limited) event processing, you will very seldom see any data provided by register 0.
Since this is the most important register when a device is active, ADB Prober provides a special polling routine called 'T-Polling'. T-Polling watches the 0 register of the selected device _very_ closely until it detects data. Then it displays the contents of all four registers and stops polling the device, waiting for you to press the mouse button to exit polling.
You enter T-Polling by holding down the OPTION key while clicking on the Poll button (note that the Buttons name changes from 'Poll' to 'T-P'). Note that while T-Polling watches the selected device it will seemingly freeze you Mac. This is normal. Control returns to your Mac as soon as the device you T-Poll activated.
WARNING:
If you T-Poll a device that is not connected, you will not be able to exit the
T-Polling mode SHORT OF PRESSING RESET!!!! Be sure you know what you are
doing when using T-Polling! Never T-Poll a Phantom Device since it can't
respond.
ADB Trouble Shooting
===================
If you have a problem with the ADB, run ADB prober (make sure that you have saved all open documents. This is not because ADB Prober is known to crash but just a safety measure since you *do* suspect problems and a crash *can* occur, after all).
Looking at the initial diagnostics display, try to make out if one of your devices is missing. Also, look for devices that do not match their designation. Look in the list of all recognized devices ("What Devices ADB Prober Knows"). If your device appears in the list of known devices but is not correctly identified there is a good chance that something bad is going on. Finally, look for devices that have 'Flags' attached to them (•, ¥ or Δ). These are devices that *could* have problems.
If a device is missing, wrongly identified or flagged, Re-Set the bus. In most cases, this should solve the problem. If you are using a device that uses an external power supply (e.g. the UnMouse), make sure they have their power switched on (it is amazing how many problems can be traced to such a simple cause). When a device comes on-line that was previously down-powered, the bus must be re-set. I assume you are not mad enough to connect a new device to a live Mac (hint, hint!), so it is impossible that a non-externally powered device suddenly comes online.
If the problems persist, turn to the polling mode if you are a pro (or just generally curious) or return the device to your manufacturer. If you poll the device, be sure to have read that part of the documentation (that's why I took the trouble to write it).
The first thing to check when polling a device is whether it's register 3 continuously supplies information. If R3 fails to turn up information, your device is probably broken. If R3 provides information, activate the device (e.g. press some keys, buttons or whatever) and look for changes. If the register information responds well enough, chances are high that the device is OK.
If you are unable to detect any change while playing with the device, we must go to the heart of the matter. All devices *must* send some data through register zero when it is activated. However, ADB Prober is usually too fast when updating the register information in normal polling. Use T-Polling to verify that your device is working. T-Polling waits for register zero to transmit data and then displays all registers (without updating them).
Should a device not respond to activation, it is probably broken. Note that in this case you are not able to exit ADB Prober short of pressing Reset (and thus losing all your open documents - you did save, didn't you?).
There is always the possibility that not your devices are flakey, but that the ADB chip itself took leave. This generally happens when you connect or disconnect a device while the Mac is switched on. Normally, the ADB chip simply goes the way of the Dodo and you won't be able to use any device.
Sometimes, however, the chip is only halfway gone and all kinds of strange results can happen. These include random keypresses, mouse clicks, freezes and other undesirable effects. ADB Prober is *not* able to detect a broken or wouded ADB chip.
As a last resort, you can always email me, but since the initial release of Prober I am flooded with emails. A reply will usually take me 1 to 2 weeks, so it's normally faster to just go ahead and try a few things yourself.
Also, note that I do not work for Apple and I'm not the ADB Guru for this side of the galaxy.
What Devices ADB Prober Knows:
-----------------------------
ADB Prober currently recognizes:
• Mouse
Apple Standard
Mouse Systems optical A^3 Mouse
Kensington Turbo Mouse
WACOM
MicroSpeed Mouse Deluxe Mac
• Trackpad (PB 540c)
• Trackball
emac Silhouette
Mouse Systems Trackball
PowerBook 180
PowerBook 140
PowerBook Duo
CoStar Stingray
Logitech Trackman
Kensington
CH Products Trackball Pro
• Keyboard
Extended II
Apple Keyboard II (various kinds and then some)
PowerBook 540 (various)
PowerBook 140
PowerBook 145
PowerBook Duo
Apple Adjustable (various)
Standard
Cutting Edge Extended
MicroSpeed
• Keypad (from Apple Adjustable Keyboard)
• Joysticks
Thrustmaster
Gravis MouseStick II
MacEnjoy v1.0
MacEnjoy v2.x
MacEnjoy Flight
CH Products Flight Stick
CH Products Jet Stick
• WACOM ArtPad Tablett
• Power Devices
PowerKey
PowerKey Pro
• Dongle
MicroGuard
MacHASP
Corean Lock
• Monitors
Apple AudioVision 14"
• Apple AudioVison control
• Calcomp DrawingSlate
• Light Source Colortron
The AudioVision Control is a device that is built into Apple's Adjustable Keyboard and some 17" Monitors. It controls the sound and brightness settings and probably some other things. If ADB Prober finds this device on your ADB and you are sure you have neither connected, be sure to tell me about it.
What an ADB Device Producer should know
-------------------------------------
Up to version 0.97 ADB Prober identified a device merely by its type and original address. However, many early ADB device producers failed to provide it's own type and made it's devices identify itself as a mouse.
Therefore, there are many conflicting designations. For example, ADB Prober is unable to distinguish between a CoStar Stingray, Logitech Trackman or WACOM Mouse.
Since version 0.97 ADB Probers capabilities to deep-probe have been significantly enhanced. It is now able to distinguish between devices it formerly was unable to. For example, early versions of the MacEnjoy Joystick Adapter identified themselves as a Mouse. Now, ADB Prober can identify such a device.
If you produce a device that ADB Prober is not able to uniquely identify, please write me about it and tell me how your own software is able to recognize your device. I will make sure that a new version of ADB Prober correctly identifies your device.
What it thinks it knows but actually doesn't:
----------------------------------------
The following devices are not correctly recognized:
• SuperMac TrackBall (identifies as Keyboard Apple Standard)
• Some versions of Gravis GamePad (identifies as Keyboard Apple Standard)
• MicroQue QuePoint
• Keytronic Trackmate Mac
Also, ADB Prober may find more devices than that are actually connected to your system. ADB Prober tries to identify these 'Phantom Devices'. If this happens to you, please email me and tell me your setup and what Extensions you have running.
What it doesn't know:
-------------------
I'm looking for the device characteristics of the following devices:
• Trackballs
• Q-Stick
• UnMouse
• DataGlove (the ADB version)
• Any Graphic Tablet or Light Stick not listed
• Any other input device you may come across that's not listed under
recognized
What I would like to know
-----------------------
Run ADB Prober. If you encounter an ambiguous designation (for example 'Mouse/Trackball') I would like you to help me resolve it. If you feel up to it, supply me with some more detailed information. First, look at the 'CA' column of the device in question. Write it down. Now, select the device and press the 'Poll' button. You will be rewarded with a window that dumps four resgisters as sequences of 'Hex Bytes'. Write these numbers down as well. Now, activate the device (e.g. move joystick's handle, draw a line with the pen on your tablet or bend a finger in your PowerGlove). Some numbers will change. Again, write down the new numbers along with what you did to activate the device.
Note that some devices (e.g. Mouse, Keyboard) have some constantly changing registers. If that happens, be sure to also write it down.
Finally, write down the model number and producer of your device. Send all this information to cfranz@home.malg.imp.com for me to process and incorporate it into the program. Oh, and if the information warrants a new version of Prober, you will get the credits for it!
What you should know:
--------------------
If you run into any device ADB Prober is unable to correctly identify, please send me the results (along with a note listing all your connected devices). Should you encounter any unknown or phantom devices or have the program flag a device with a question mark, please be sure to tell me about it.
I will then need the following details:
1. Name, Manufacturer and possibly version numbers of all devices connected
2. The output of ADB prober (a COMPRESSED screenshot will do nicely, but you may
as well write a list)
Send me a letter to
cfranz@home.malg.imp.com
or (if you don't have Internet access) to:
C. Franz
Universitaetstrasse 93
CH-8006 ZUERICH
Switzerland
If you send in this information, I will be able to update the ADB Prober to
correctly recognize all devices. Of course, feel free to mail me just to tell me your view of the world in general and ADB Prober in particular.
What your wallet should know
---------------------------
ADB Prober is free. I hope you like the program. If you do, you may keep it. If you don't, you must erase it within two weeks from your harddisk ;-)
What AOL users should know
-------------------------
ADB Prober works only on Macs with ADB. This means that it does NOT work on the original Mac, the Lisa (Mac XL), the Mac 512 or the Mac Plus, even if so-called 'file-descriptors' from AOL-native archive moderators state differently.
What my lawyer knows:
---------------------
ADB Prober ('the program') is provided free of charge. I, Christian Franz, retain all rights to this program and it's documentation. You may not charge any amount of money for this program or it's distribution other than the usual downloading fee from BBS. You may not alter either program or its documentation and may not distribute modified versions of program or documentation. If you distribute the program, you must include this documentation.
Use the program at your own risk. I will not assume any liability for any damages received through the use of ADB Prober (or, for that matter, its documentation).
Zürich, May 1995
What I preferred not to have known:
"Sadder still to watch it die than never to have known it". How true.